package com.lvy.hczn.front.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lvy.hczn.front.system.domain.business.GoodsBox;
import com.lvy.hczn.front.system.domain.business.WarehouseBoxEntry;

import java.util.List;

/**
 * 货箱入库单Service接口
 *
 * @author ruoyi
 * @date 2023-05-23
 */
public interface WarehouseBoxEntryService extends IService<WarehouseBoxEntry> {
    /**
     * 查询货箱入库单
     *
     * @param id 货箱入库单主键
     * @return 货箱入库单
     */
    WarehouseBoxEntry selectWarehouseBoxEntryById(String id);

    /**
     * 查询货箱入库单列表
     *
     * @param warehouseBoxEntry 货箱入库单
     * @return 货箱入库单集合
     */
    List<WarehouseBoxEntry> selectWarehouseBoxEntryList(WarehouseBoxEntry warehouseBoxEntry);

    /**
     * 新增货箱入库单
     *
     * @param warehouseBoxEntry 货箱入库单
     * @return 结果
     */
    int insertWarehouseBoxEntry(WarehouseBoxEntry warehouseBoxEntry);

    /**
     * 空箱放到仓库，同步到数据中心，然后转发平台
     *
     * @param warehouseBoxEntry
     * @return void
     * @author yw
     * @date 2023-11-24 17:22:28
     */
    void syncToDataTransmit(WarehouseBoxEntry warehouseBoxEntry);

    /**
     * 初始化空箱单据
     *
     * @param goodsBox
     * @param warehouseBoxEntry
     * @param type              入库类型（0：空箱入库，不入仓库货架；1:出库）
     * @param overType          0清箱入库,1采购入库,2调拨入库,3报损入库,4其他入库,5取箱出库,6调拨出库7其他出库
     * @param boxEntryCode      单号
     * @return void
     * @author yw
     * @date 2023-11-24 20:33:02
     */
    void initWarehouseBoxEntryByGoodsBox(GoodsBox goodsBox, WarehouseBoxEntry warehouseBoxEntry, Integer type, Integer overType, String boxEntryCode);

    /**
     * 修改货箱入库单
     *
     * @param warehouseBoxEntry 货箱入库单
     * @return 结果
     */
    int updateWarehouseBoxEntry(WarehouseBoxEntry warehouseBoxEntry);

    /**
     * 批量删除货箱入库单
     *
     * @param ids 需要删除的货箱入库单主键集合
     * @return 结果
     */
    int deleteWarehouseBoxEntryByIds(String ids);

    /**
     * 删除货箱入库单信息
     *
     * @param id 货箱入库单主键
     * @return 结果
     */
    int deleteWarehouseBoxEntryById(String id);
}
